package com.itheima.job;

import com.itheima.resources.QiniuUtils;
import com.itheima.resources.RedisConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Date;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;

@Component
public class QiniuyunCleanImageObject {

    //注入连接池
    @Autowired
    private JedisPool jedisPool;

    public void run(){
        System.out.println("quartz 清理七牛云图片的任务开始运行了..."+new Date());
        //获取jedis对象
        Jedis jedis = jedisPool.getResource();
        //这个方法 是指返回 参一这个key值在redis中的集合 多余 参2这个key值在redis中的集合 的元素 组成的集合
        //参一表示 存储到七牛云的图片名集合 参二表示存储到数据库中的图片名集合
        Set<String> sdiff = jedis.sdiff(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);

        //判断集合长度是否大于0  如果大于0 则说明有图片需要清理
        if (sdiff.size()>0){
            System.out.println("有图片需要清洗,现在开始清理了");
            //遍历set集合
            for (String qiniuFileName : sdiff) {
                //调用自定义的工具类清理在七牛云中的图片
                QiniuUtils.deleteFileFromQiniu(qiniuFileName);
                System.out.println("清理图片:"+qiniuFileName);
            }

            //清理完后,就可以删除redis中的这两个集合内容了
            Long del = jedis.del(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
            System.out.println("删除redis后的返回值:"+del);
        }else{
            System.out.println("没有图片需要清理");
        }
        //将jedis对象返还给连接池
        jedis.close();
    }


}
